package cn.gov.sdcj.accountancy.entity

import groovy.transform.AutoClone

/**
 * <p>Description: 凭证分录与系统对象/记录的关系
 * </p>
 *
 * Created by laijie on 2015/3/27.
 */
@AutoClone
class Relation {
    int voucherId
    int entryId
    /**
     * 对象类名称/数据表名称
     */
    String className;
    /**
     * 对象/表的唯一标识
     */
    String id;

    def add(Map attributes) {
        attributes.each { it ->
            if (this.hasProperty("$it.key")) {
                // 属性已有则进行连接
                if (this.getProperty(it.key)) {
                    this["$it.key"] += it.value
                } else {
                    this["$it.key"] = it.value
                }
            }
        }
    }

    String toString() {
        String rst = "${className}:${id}"
        return rst
    }

    boolean equals(Object obj) {
        return obj in Relation && className == obj.className && id == obj.id
    }
}
